#ifndef wm_keyboard_tree_h
#define wm_keyboard_tree_h
/*
 * Sylvain BERTRAND <digital.ragnarok@gmail.com>
 * code protected by GNU GPL v3
 */
struct wm_key_binding_tree {
	guint state;
	guint key;
	GList *keylist;
	GSList *actions;
	gboolean chroot;
	struct wm_key_binding_tree *parent;
	struct wm_key_binding_tree *next_sibling;
	struct wm_key_binding_tree *first_child;
};
void tree_destroy(struct wm_key_binding_tree *tree);
struct wm_key_binding_tree *tree_build(GList *keylist);
void tree_assimilate(struct wm_key_binding_tree *node);
struct wm_key_binding_tree *tree_find(struct wm_key_binding_tree *search, gboolean *conflict);
gboolean tree_chroot(struct wm_key_binding_tree *tree, GList *keylist);
#endif
